<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    //1、求1 + 2！ + 3！ + 4！....+20!的值
	// - 2！ = 2 * 1
	// - 3！ = 3 * 2 * 1
    var a = 1;
    var c = 0;
    for(var b=1;b<=20;b++){
        a = a*b;
        c += a;
    }
    console.log(c);
    
console.log('-----------------------------------')

    // 2、求叠数之和(1-9)
    // - 如输入的是 n=3， a=2；则输出 2 + 22 + 222 的值。
	// - 如输入的是 n=4， a=3；输出 3 + 33 + 333 + 3333的值
	// - n = 3,相加三次,每次相加比前一次相加的数,多一位
	// - 每次多的这个位数的值为a, 如果a为2则 2 * 10+2, 22 * 10+2

    


    //3、输入两个数求两个数的最大公约数
	// - 先取出两个数中最小的数
	// - 最小的数不断递减，取出能同时被两个数整除的数，并退出循环

    var num;
    var n1 = 340;
    var n2 = 11234;
    if(n1<n2){
        num = n1; 
    }else{
        num = n2;
    }
    for(num;num>=0;num--){
        if(n1%num == 0 && n2%num == 0){
            console.log(num);
            break
        }
    }

console.log('---------------------------------------------');

    //4、输入两个数，求两个数的最小公倍数
    // - 先取出两个数中最大的数
    // - 最大的数不断递增，提出能整除两个数的那个数，然后退出循环

    var sum;
    var a1 = 6;
    var a2 = 10;
    if(n1<n2){
        sum = a2;
    }else{
        sum = a1;
    }
    for(sum;sum>=0;sum++){
        if(sum % a1 ==0 &&sum % a2 ==0){
            console.log(sum);
            break;
        }
    }


console.log('---------------------------------------------');


// 5、回文数

// - 要求：打印10000~99999区间的回文数字，形如12321 23432 34543等
// 	- 提示: 回文数需同时满足下面的条件         
// 	[1] 第一位和倒数第一位相等
// 	[2] 第二位和倒数第二位相等
// 	[2] 第二位等于第一位数加一
// 	[3] 第三位等于第二位数加一
    

    for(var j=10000;j<=99999;j++){
        var gw = j % 10;
        var sw = parseInt((j % 100) / 10);
        var bw = parseInt((j % 1000) / 100);
        var qw = parseInt((j % 10000) / 1000);
        var ww = parseInt(j / 10000);
        if(gw == ww && sw == qw && sw == gw+1 && bw == sw+1){
            console.log(j);
            
        }
    }
</script>
</html>